جزوه · فصل چهارم · جلسه ۴۲ · آرشیو کردن فایل‌ها ← بازگشت به فهرست
📘 فصل چهارم · جلسه ۴۲ آرشیو کردن فایل‌ها در لینوکس
📅 تاریخ: دوشنبه، ۲۶ مرداد ۱۴۰۵ 👤 مدرس: محمد عابدینی 🐚 Zsh · 🐧 Debian (کالی) · 📦 Red Hat

▍ مقدمه

آرشیو کردن به معنای جمع‌آوری چندین فایل و دایرکتوری در یک فایل واحد است. این کار برای پشتیبان‌گیری (Backup)، انتقال فایل‌ها و مدیریت بهتر داده‌ها بسیار مفید است. در لینوکس، سه ابزار اصلی برای آرشیو کردن وجود دارد: tar، cpio و dd.

🔑 ابزارهای آرشیو در لینوکس:
  • tar (Tape Archive) → محبوب‌ترین و پرکاربردترین ابزار
  • cpio (Copy In/Out) → قدیمی و قدرتمند
  • dd → کپی سطح پایین (مخصوص دیسک‌ها و پارتیشن‌ها)

▍ ابزار اول: cpio (Copy In/Out)

cpio یکی از قدیمی‌ترین ابزارهای آرشیو در لینوکس است که معمولاً برای پشتیبان‌گیری و انتقال فایل‌ها در محیط‌های قدیمی استفاده می‌شود. این ابزار فایل‌ها را از ورودی استاندارد (STDIN) می‌خواند و آرشیو را در خروجی استاندارد (STDOUT) ایجاد می‌کند.

📦 ایجاد آرشیو با cpio

┌──(ya3in㉿kali)-[~/Desktop/test] └─$ ls ys? | cpio -ov > yasin.cpio ys1
ys2
ys3
ys4
ys5
51201 blocks

توضیح: ls ys? | cpio -ov > yasin.cpio

  • ls ys? → لیست فایل‌هایی که با ys شروع می‌شوند و یک کاراکتر دارند.
  • | → Pipe (خروجی ls را به cpio می‌دهد).
  • cpio -ov-o (create archive) و -v (verbose).
  • > yasin.cpio → خروجی را در فایل yasin.cpio ذخیره کن.

📦 مشاهده محتوای آرشیو

┌──(ya3in㉿kali)-[~/Desktop/test/file] └─$ cpio -itv < yasin.cpio -rw-rw-r-- 1 ya3in ya3in 5.0M Aug 17 21:52 ys1
-rw-rw-r-- 1 ya3in ya3in 5.0M Aug 17 21:52 ys2
-rw-rw-r-- 1 ya3in ya3in 5.0M Aug 17 21:52 ys3
-rw-rw-r-- 1 ya3in ya3in 5.0M Aug 17 21:52 ys4
-rw-rw-r-- 1 ya3in ya3in 5.0M Aug 17 21:52 ys5

توضیح: cpio -itv < yasin.cpio

  • -i → extract (خواندن آرشیو)
  • -t → table (نمایش لیست فایل‌ها)
  • -v → verbose (جزئیات)

📦 باز کردن آرشیو

┌──(ya3in㉿kali)-[~/Desktop/test/file] └─$ cpio -iv < yasin.cpio ys1
ys2
ys3
ys4
ys5
51201 blocks

توضیح: cpio -iv < yasin.cpio

  • -i → extract (باز کردن)
  • -v → verbose (نمایش نام فایل‌ها)
💡 گزینه‌های مهم cpio:
  • -o → ایجاد آرشیو (Create)
  • -i → باز کردن آرشیو (Extract)
  • -t → نمایش لیست فایل‌ها (Table)
  • -v → نمایش جزئیات (Verbose)
  • -d → ایجاد دایرکتوری‌های مورد نیاز
  • -u → بازنویسی فایل‌های قدیمی

▍ ابزار دوم: tar (Tape Archive)

tar محبوب‌ترین و پرکاربردترین ابزار آرشیو در لینوکس است. این ابزار می‌تواند همزمان آرشیو و فشرده‌سازی انجام دهد. به فایل‌های ایجاد شده با tar، tarball گفته می‌شود.

📦 ایجاد آرشیو ساده

┌──(ya3in㉿kali)-[~/Desktop/test/file] └─$ tar -cvf yasin.tar ys? ys1
ys2
ys3
ys4
ys5

توضیح: tar -cvf yasin.tar ys?

  • -c → create (ایجاد آرشیو)
  • -v → verbose (نمایش جزئیات)
  • -f → file (نام فایل آرشیو)
  • ys? → فایل‌هایی که با ys شروع می‌شوند و یک کاراکتر دارند.

📦 آرشیو + فشرده‌سازی

┌──(ya3in㉿kali)-[~/Desktop/test/file] └─$ tar -Jcvf yasin.tar.xz ys? ys1
ys2
ys3
ys4
ys5

توضیح: tar -Jcvf yasin.tar.xz ys?

  • -J → فشرده‌سازی با xz
  • -c → create
  • -v → verbose
  • -f → file
┌──(ya3in㉿kali)-[~/Desktop/test/file] └─$ ls -lh -rw-rw-r-- 1 ya3in ya3in 26M Aug 17 21:56 yasin.tar
-rw-rw-r-- 1 ya3in ya3in 4.1K Aug 17 21:57 yasin.tar.xz

نکته: حجم فایل yasin.tar.xz از yasin.tar بسیار کمتر است!

📦 باز کردن آرشیو

┌──(ya3in㉿kali)-[~/Desktop/test/file] └─$ tar -xvf yasin.tar ys1
ys2
ys3
ys4
ys5

توضیح: tar -xvf yasin.tar

  • -x → extract (باز کردن)
  • -v → verbose
  • -f → file
┌──(ya3in㉿kali)-[~/Desktop/test/file] └─$ tar -xvf yasin.tar.xz ys1
ys2
ys3
ys4
ys5
📌 گزینه‌های مهم tar:
  • -c → ایجاد آرشیو (Create)
  • -x → باز کردن آرشیو (Extract)
  • -t → نمایش محتوای آرشیو (Table)
  • -v → نمایش جزئیات (Verbose)
  • -f → نام فایل آرشیو (File)
  • -z → فشرده‌سازی با gzip (پسوند .tar.gz)
  • -j → فشرده‌سازی با bzip2 (پسوند .tar.bz2)
  • -J → فشرده‌سازی با xz (پسوند .tar.xz)

▍ ابزار سوم: dd

dd یک ابزار سطح پایین است که برای کپی کردن بایت‌به‌بایت فایل‌ها، پارتیشن‌ها و دیسک‌ها استفاده می‌شود. این ابزار بیشتر برای پشتیبان‌گیری از دیسک و ایجاد فایل‌های تصویری کاربرد دارد.

📌 مثال از dd:
┌──(ya3in㉿kali)-[~] └─$ dd if=/dev/sda of=backup.img bs=4M
  • if=/dev/sda → ورودی (Input File) = دیسک sda
  • of=backup.img → خروجی (Output File) = فایل تصویری
  • bs=4M → Block Size = ۴ مگابایت (سرعت کپی)

کاربرد: پشتیبان‌گیری کامل از یک دیسک یا ایجاد فایل‌های تصویری برای ماشین‌های مجازی.

▍ جدول مقایسه ابزارهای آرشیو

ویژگی tar cpio dd
کاربرد اصلی آرشیو فایل‌ها آرشیو فایل‌ها کپی سطح پایین
فشرده‌سازی همزمان ✅ بله (-z, -j, -J) ❌ خیر ❌ خیر
حفظ مجوزها ✅ بله ✅ بله ✅ بله (کپی بایت)
مناسب برای کاربرد روزمره سیستم‌های قدیمی دیسک و پارتیشن
محبوبیت ⭐⭐⭐⭐⭐ ⭐⭐⭐ ⭐⭐⭐⭐
✅ تمرین پیشنهادی:
  • چند فایل تست با fallocate بسازید.
  • با tar -cvf یک آرشیو از آنها ایجاد کنید.
  • با tar -Jcvf یک آرشیو فشرده با xz ایجاد کنید.
  • با tar -xvf آرشیو را باز کنید.
  • با cpio نیز یک آرشیو ایجاد کرده و باز کنید.